package evemanutool.gui.manu; import java.awt.GridLayout; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import evemanutool.constants.DBConstants.QuoteType; import evemanutool.data.database.Material; import evemanutool.data.display.MiningQuote; import evemanutool.gui.general.tabel.ScrollableTablePanel; import evemanutool.gui.manu.components.MineralModel; import evemanutool.gui.manu.components.MiningQuoteModel; import evemanutool.utils.databases.QuoteDB; import evemanutool.utils.datahandling.GUIUpdater; @SuppressWarnings("serial") public class MiningPanel extends JPanel implements GUIUpdater, SwingConstants { //Constants. private QuoteType qT; //DBs. private QuoteDB qdb; //GUI components. private ScrollableTablePanel<MiningQuote> miningPanel; private ScrollableTablePanel<Material> mineralPanel; public MiningPanel(QuoteType qT, QuoteDB qdb, String label) { this.qdb = qdb; this.qT = qT; // Set layout. setLayout(new GridLayout(2, 1)); miningPanel = new ScrollableTablePanel<>(new MiningQuoteModel()); miningPanel.getTable().getSelectionModel().addListSelectionListener(new SelectionListener()); mineralPanel = new ScrollableTablePanel<>(new MineralModel()); // Add components to panel. add(miningPanel); add(mineralPanel); } @Override public void updateGUI(){ miningPanel.getModel().setData(qdb.getMiningQuotes(qT)); } private class SelectionListener implements ListSelectionListener { @Override public void valueChanged(ListSelectionEvent e) { //Sets the selected quote from the showed list (Not the complete). if (!e.getValueIsAdjusting() && miningPanel.getTable().getSelectedRow() >= 0 && miningPanel.getTable().getSelectedRow() < miningPanel.getModel().size()) { mineralPanel.setData(miningPanel.getModel().getDataAt( miningPanel.getSorter().convertRowIndexToModel( miningPanel.getTable().getSelectedRow())).getOre().getBaseMaterials()); } } } }